Chrome 137

תאריך פרסום הגרסה היציבה: 27 במאי 2025

אלא אם צוין אחרת, השינויים הבאים חלים על הגרסה 137 של Chrome בערוץ היציב ל-Android, ל-ChromeOS, ל-Linux, ל-macOS ול-Windows.

CSS וממשק משתמש

פונקציית if() של CSS

הפונקציה if() ב-CSS מספקת דרך תמציתית להביע ערכים מותנים. הוא מקבל סדרה של צמדי תנאי-ערך, שמופרדים בנקודות-פסיק. הפונקציה בוחנת כל תנאי ברצף ומחזירה את הערך שמשויך לתנאי הראשון שמתקיים. אם אף אחד מהתנאים לא מקבל את הערך True, הפונקציה מחזירה מקור אסימונים ריק. כך אפשר לבטא לוגיקה מותנית מורכבת בדרך פשוטה ותמציתית.

דוגמה:

div {
  color: var(--color);
  background-color: if(style(--color: white): black; else: white);
}

.dark {
  --color: black;
}

.light {
  --color: white;
}
<div class="dark">dark</div>
<div class="light">light</div>

באג מעקב מס' 346977961 | רשומה ב-ChromeStatus.com | מפרט

מאפייני CSS‏ reading-flow, reading-order

המאפיין reading-flow ב-CSS קובע את הסדר שבו רכיבים בפריסה של גמישות, רשת או בלוק נחשפים לכלים לנגישות ומקבלים מיקוד באמצעות ניווט המיקוד במקלדת באמצעות Tab.

בעזרת נכס ה-CSS reading-order, המחברים יכולים לשנות באופן ידני את הסדר בתוך מאגר של תהליך קריאה. זהו מספר שלם עם ערך ברירת מחדל של 0.

מידע נוסף על המאפיינים האלה זמין במאמר שימוש ב-CSS reading-flow לניווט לוגי רציף של המיקוד, ואפשר גם לנסות כמה דוגמאות.

מעקב אחרי באג מס' 40932006 | הרשומה ב-ChromeStatus.com | מפרט

התעלמות מריווח בין אותיות בסקריפטים בכתב יד

התכונה הזו מוסיפה לוגיקה שמאפשרת להתעלם מהגדרת המרווח בין האותיות בסקריפטים בכתב יד, כפי שצוין על ידי המפתח, בהתאם למפרט. המטרה היא להבטיח שהמרווח בין האותיות לא יפריע למבנה המילים, וכך לשפר את חוויית המשתמש של משתמשים שמשתמשים בסקריפטים בכתב יד.

התכונה הזו מאפשרת ל-Chrome לוודא שכתבי יד בכתב מרובע יהיו קריאים ועם רווחים תקינים, גם אם הגופנים לא כוללים תכונות טיפוגרפיות מתקדמות.

הסקריפטים שחלים עליהם ב-Chromium הם ערבית, Hanifi Rohingya, Mandaic, מונגולי, N'Ko, Phags Pa ו-Syriac, כי הסקריפטים האלה נחשבים לכתב יד לפי המפרט.

מעקב אחרי באג מס' 40618336 | רשומה ב-ChromeStatus.com | מפרט

Selection API‏ getComposedRanges ו-direction

התכונה הזו כוללת שתי שיטות API חדשות ל-Selection API:

  • Selection.direction שמחזיר את כיוון הבחירה בתור none,‏ forward או backward
  • Selection.getComposedRanges() שמחזירה רשימה של 0 או 1 מורכבת StaticRange

StaticRange מורכב מורשה לחצות גבולות של צללים, אבל Range רגיל לא יכול.

לדוגמה:

const range = getSelection().getComposedRanges({ shadowRoots: [root] });

אם הבחירה חוצה גבול של שורש צללי שלא מופיע ברשימה shadowRoots, נקודות הקצה של StaticRange יחויבו לשינוי היקף כך שייצאו מחוץ לעץ הזה. כך אפשר לוודא ש-Chrome לא חושף עצי צל לא מוכרים.

מעקב אחרי באג מס' 40286116 | הרשומה ב-ChromeStatus.com | מפרט

לתמיכה ב-offset-path: shape()

תמיכה ב-offset-path: shape(), כדי לאפשר להשתמש בצורות רספונסיביות כדי להגדיר את נתיב האנימציה.

מעקב אחרי באג מס' 389713717 | רשומה ב-ChromeStatus.com | מפרט

תמיכה במאפיין transform ב-SVGSVGElement

התכונה הזו מאפשרת להחיל מאפייני טרנספורמציה – כמו שינוי קנה מידה, סיבוב, תרגום ועיוות – ישירות על רכיב הבסיס <svg> באמצעות המאפיין transform שלו. השיפור הזה מאפשר לשנות את כל מערכת הקואורדינטות של ה-SVG או את התוכן שלה באופן כללי, ומספק גמישות רבה יותר ביצירת גרפיקה וקטורית דינמית, רספונסיבית ואינטראקטיבית. התמיכה במאפיין הזה מאפשרת לשנות את הרכיב <svg> בלי צורך ברכיבי עטיפה נוספים או בפתרונות חלופיים מורכבים ב-CSS, וכך לייעל את תהליך היצירה של גרפיקה רספונסיבית ואנימציות לאינטרנט.

מעקב אחרי באג מס' 40313130 | רשומה ב-ChromeStatus.com | מפרט

צבע ההדגשה של המערכת למאפיין accent-color

כך תוכלו להשתמש בצבע המשני של מערכת ההפעלה באלמנטים של טפסים. באמצעות מאפיין ה-CSS accent-color, אפשר לוודא שרכיבי טפסים כמו תיבות סימון, לחצני רדיו וסרגלי התקדמות יקבלו באופן אוטומטי את צבע הרקע המוגדר במערכת ההפעלה של המשתמש. התכונה הזו נתמכת ב-macOS מאז 2021, ועכשיו היא נתמכת גם ב-Windows וב-ChromeOS.

באג מעקב מס' 40764875 | רשומה ב-ChromeStatus.com | מפרט

כדי לאפשר ל-<use> להפנות לרכיב השורש של מסמך חיצוני, משמיטים את הקטע.

התכונה הזו משפרת את היעילות של רכיב ה-SVG <use> על ידי הקטנת הדרישות להפניות. לפני גרסה 137 של Chrome, היה צריך להפנות באופן מפורש לקטעים במסמך ה-SVG. אם לא יצוין מזהה קטע, <use> לא יוכל לפתור את היעד ולא יהיה רינדור או הפניה.

לדוגמה: רכיב <use> שמתייחס לקובץ חיצוני עם מזהה קטע:

<svg>
  <use xlink:href="myshape.svg#icon"></use>
</svg>

בדוגמה הזו, #icon הוא מזהה הקטע שמפנה לרכיב עם id="icon" בתוך myshape.svg.

ללא מזהה קטע:

<svg>
  <use xlink:href="myshape.svg"></use>
</svg>

בעזרת התכונה הזו, אפשר להשמיט קטעים או לציין רק את שם קובץ ה-SVG החיצוני, והמערכת תתייחס באופן אוטומטי לאלמנט הבסיס. כך לא תצטרכו לשנות את המסמך שמצוין רק כדי להקצות מזהה ל-root. השיפור הזה מפשט את תהליך העריכה הידני ומשפר את היעילות.

מעקב אחרי באג מס' 40362369 | רשומה ב-ChromeStatus.com | מפרט

סוגי צבעים של נקודה צפה (floating-point) בקנבס

הוספה של היכולת להשתמש בפורמטים של פיקסלים עם נקודה צפה (לעומת נקודה קבועה של 8 ביט) באמצעות CanvasRenderingContext2D,‏ OffscreenCanvasRenderingContext2D ו-ImageData.

הדבר נחוץ לאפליקציות עם רמת דיוק גבוהה (למשל, תצוגה חזותית רפואית), לתוכן בטווח דינמי גבוה ולמרחבי צבעים לעבודה לינאריים.

מעקב אחרי באג מס' 40245602 | הרשומה ב-ChromeStatus.com | מפרט

view-transition-name: match-element

הערך match-element יוצר מזהה ייחודי על סמך הזהות של האלמנט ומשנה את השם של האלמנט הזה. אפשר להשתמש באפשרות הזו במקרים של אפליקציות דף יחיד שבהן הרכיב זז ואתם רוצים להוסיף לו אנימציה באמצעות מעבר תצוגה.

מעקב אחרי באג מס' 365997248 | רשומה ב-ChromeStatus.com | מפרט

תשלומים

סוג השגיאה שהותאמה ליצירת פרטי הכניסה של payment ב-WebAuthn: SecurityError הופך ל-NotAllowedError

מתקנים את סוג השגיאה שהופיעה במהלך יצירת פרטי הכניסה ל-WebAuthn עבור פרטי הכניסה של payment. בגלל אי-התאמה היסטורית במפרט, יצירת פרטי כניסה מסוג payment ב-iframe ממקורות שונים ללא הפעלת משתמש תגרום להשלכת SecurityError במקום NotAllowedError, שהוא הערך שמופיע כשמשתמשים בפרטי כניסה ללא תשלום.

זהו שינוי שגורם לשבירה של תאימות, אם כי הוא ספציפי לתחום. קוד שזיהה בעבר את סוג השגיאה שהופיעה (לדוגמה, e instanceof SecurityError) מושפע. קוד שמטפל באופן כללי בשגיאות במהלך יצירת פרטי הכניסה (לדוגמה, catch (e)) ימשיך לפעול בצורה תקינה.

מעקב אחרי באג מס' 41484826 | רשומה ב-ChromeStatus.com | מפרט

ממשקי API של אתרים

חלוקה למחיצות של כתובות URL מסוג Blob: אחזור/ניווט

בהמשך לחלוקת האחסון למחיצות, ב-Chrome הופעלה חלוקה למחיצות של הגישה לכתובות URL של Blob לפי מפתח האחסון (אתר ברמה העליונה, מקור המסגרת והערך הבוליאני has-cross-site-ancestor), מלבד ניווטים ברמה העליונה, שבהם החלוקה למחיצות תישאר רק לפי מקור המסגרת. ההתנהגות הזו דומה להתנהגות שמוטמעת כרגע ב-Firefox וב-Safari, והיא תואמת את השימוש בכתובות URL של Blob לתוכנית המחיצות שמשמשת ממשקי API אחרים של אחסון במסגרת מחיצות האחסון. בנוסף, Chrome אוכף עכשיו את ה-noopener על ניווטים ברמה העליונה שמתחילים במעבד גרפיקה לכתובות URL של Blob, כאשר האתר התואם הוא מאתר אחר ולא מהאתר ברמה העליונה שמבצע את הניווט. כך Chrome יתנהג כמו Safari, והמפרטים הרלוונטיים עודכנו כך שישקפו את השינויים האלה.

מעקב אחרי באג מס' 40057646 | הרשומה ב-ChromeStatus.com

סטאקים של קריאות בדוחות קריסה מדפי אינטרנט שלא מגיבים

התכונה הזו מתעדת את סטאק הקריאות של JavaScript כשדף אינטרנט הופך לא מגיב בגלל קוד JavaScript שמריץ לולאה אינסופית או חישוב ארוך מאוד אחר. כך המפתחים יכולים לזהות בקלות רבה יותר את הגורם לאי-התגובה ולתקן אותו. סטאק הקריאות של JavaScript נכלל ב-API לדיווח על קריסות כשהסיבה היא חוסר תגובה.

מעקב אחרי באג מס' 1445539 | רשומה ב-ChromeStatus.com | מפרט

Document-Isolation-Policy

Document-Isolation-Policy מאפשר למסמך להפעיל את crossOriginIsolation בעצמו, בלי צורך לפרוס את COOP או COEP, ולא משנה מהו סטטוס crossOriginIsolation של הדף. המדיניות נתמכת בבידוד תהליכים. בנוסף, משאבי המשנה של המסמך ממקורות שונים ללא CORS יטופלו באופן הבא: הם יטענו ללא פרטי כניסה, או שיהיה צורך לכלול בהם כותרת CORP.

מעקב אחרי באג מס' 333029146 | רשומה ב-ChromeStatus.com | מפרט

Ed25519 בקריפטוגרפיה באינטרנט

התכונה הזו מוסיפה תמיכה באלגוריתמים של Curve25519 ב-Web Cryptography API, כלומר אלגוריתם החתימה Ed25519

מעקב אחרי באג מס' 1370697 | רשומה ב-ChromeStatus.com | מפרט

מניעת מעקב באמצעות HSTS

צמצום המעקב אחר משתמשים על ידי צדדים שלישיים באמצעות המטמון של HSTS.

התכונה הזו מאפשרת שדרוגי HSTS רק לניווטים ברמה העליונה, וחוסמת שדרוגי HSTS לבקשות של משאבי משנה. כך לא ניתן לאתרים של צד שלישי להשתמש במטמון HSTS כדי לעקוב אחרי משתמשים באינטרנט.

מעקב אחרי באג מס' 40725781 | הרשומה ב-ChromeStatus.com

WebAssembly

שילוב של הבטחה (promise) ב-JavaScript

JavaScript Promise Integration‏ (JSPI) הוא ממשק API שמאפשר לאפליקציות WebAssembly להתמזג עם JavaScript Promises.

הוא מאפשר לתוכנית WebAssembly לפעול כגנרטור של Promise, ומאפשר לתוכנית WebAssembly לקיים אינטראקציה עם ממשקי API שמכילים Promise.

באופן ספציפי, כשאפליקציה משתמשת ב-JSPI כדי לקרוא ל-API (JavaScript) שמכיל Promise, קוד WebAssembly מושעה, והמבצע המקורי של הקריאה לתוכנית WebAssembly מקבל Promise שיתמלא כשתוכנית WebAssembly תסתיים סוף סוף.

הרשומה ב-ChromeStatus.com | מפרט

רמזי הסתעפות של WebAssembly

שיפור הביצועים של קוד WebAssembly שנאסף על ידי עדכון המנוע כך שיידע שיש סיכוי גבוה שההוראה מסוימת להסתעפות תעבור דרך נתיב ספציפי.

כך המנוע יכול לקבל החלטות טובות יותר לגבי פריסת הקוד (שיפור ההיטים במטמון ההוראות) והקצאת הרשומות.

הרשומה ב-ChromeStatus.com | מפרט

WebGPU

GPUTextureView לקישור של externalTexture

עכשיו מותר להשתמש ב-GPUTextureView לקישור externalTexture כשיוצרים GPUBindGroup.

מעקב אחרי באג מס' 398752857 | הרשומה ב-ChromeStatus.com | מפרט

עומס יתר ב-copyBufferToBuffer

השיטה GPUCommandEncoder copyBufferToBuffer() כוללת עכשיו דרך פשוטה יותר להעתיק מאגרים שלמים באמצעות עומס יתר חדש עם פרמטרים אופציונליים של אופסים וגדלים.

הרשומה ב-ChromeStatus.com | מפרט

Enterprise

רישום ביומן של כתובות IP ודיווח עליהן

כדי לשפר את יכולות המעקב אחר אבטחה ואת התגובה לתקריות, אנחנו ב-Chrome Enterprise אוספים כתובות IP מקומיות ומרוחקות ומדווחים עליהן, ואז שולחים את כתובות ה-IP האלה ליומני החקירה של האבטחה (SIT). בנוסף, ב-Chrome Enterprise האדמינים יוכלו לשלוח את כתובות ה-IP לספקי SIEM של צד ראשון ושל צד שלישי דרך המחבר לדיווח של Chrome Enterprise.

האפשרות הזו זמינה ללקוחות Chrome Enterprise Core.

הרשומה ב-ChromeStatus.com

גרסאות מקור לניסיון

מאפיין חסימה של עיבוד עם קצב פריימים מלא

הוספת אסימון חדש לחסימת הרינדור full-frame-rate למאפייני החסימה. כשהמרת הדפים חסומה באמצעות האסימון full-frame-rate, המרת הדפים תפעל בקצב פריימים נמוך יותר כדי לשמור יותר משאבים לטעינה.

מעקב אחרי באג מס' 397832388 | הרשומה ב-ChromeStatus.com

השהיית ההפעלה של מדיה ב-iframes שלא עברו רינדור

הוספת מדיניות הרשאות media-playback-while-not-rendered כדי לאפשר לאתרים שמטמיעים תוכן להשהות את הפעלת המדיה של iframes מוטמעים שלא עוברים עיבוד – כלומר, שהמאפיין display שלהם מוגדר כ-none. כך המפתחים יוכלו ליצור חוויות שימוש ידידותיות יותר למשתמשים ולשפר את הביצועים, כי הדפדפן יטפל בהפעלה של תוכן שלא גלוי למשתמשים.

Origin Trial | באג מעקב מס' 351354996 | רשומה ב-ChromeStatus.com

Rewriter API

Rewriter API משנה את טקסט הקלט ומנסח אותו מחדש בדרכים המבוקשות, על סמך מודל שפה מבוסס-AI במכשיר. מפתחים יכולים להשתמש ב-API הזה כדי להסיר מילים מיותרות בטקסט כדי להתאים למגבלת המילים, לשנות את הניסוח של הודעות כך שיתאימו לקהל היעד או כדי שהן יהיו יותר פרודוקטיביות אם נמצא בהן שפה פוגענית, לשנות את הניסוח של פוסט או מאמר כך שיכללו מילים ומונחים פשוטים יותר ועוד.

גרסת טרום-השקה | באג מעקב מס' 358214322 | הרשומה ב-ChromeStatus.com | מפרט

Writer API

אפשר להשתמש ב-Writer API כדי לכתוב תוכן חדש על סמך הנחיה למטלת כתיבה, שתומכת במודל שפה מבוסס-AI במכשיר. המפתחים יוכלו להשתמש ב-API הזה כדי ליצור הסברים טקסטואליים של נתונים מובְנים, לכתוב פוסט על מוצר על סמך ביקורות או תיאור המוצר, להרחיב רשימות של יתרונות וחסרונות לתצוגות מלאות ועוד.

גרסת Origin Trial | באג מעקב מס' 357967382 | הרשומה ב-ChromeStatus.com | מפרט